17. Aprende a programar.
17.1 Dev-C++ el entorno IDE para C y C++ y wxDev-C++ su hijo más aventajado.
17.2 Tus primeros pasos: KTurtle, aUCBLogo y FMSLogo.
17.3 Programando C/C++ con la vieja escuela: gcc
17.4 Anjuta.
17.5 Kdevelop.


17.1 Dev-C++ el entorno IDE para C y C++ y wxDev-C++ su hijo más aventajado.


17.1.1 Definición. Características. Direcciones interesantes.

Dev-C++ es un entorno integrado de desarrollo para C y C++ escrito en Delphi, ¡ver, para creer! Es un proyecto libre y su página oficial es http://www.bloodshed.net/dev/.

Este proyecto ha sido base de wxDev-C++, que sigue inspirándose en la filosofía libre de su progenitor, pero agrega los componentes de un entorno IDE/RAD o entorno de desarrollo rápido de aplicaciones, es decir, una potente herramienta gráfica con soporte para wxWidgets. La página oficial es http://wxdsgn.sourceforge.net/index.php.

Ambos entornos están pensados exclusivamente para Windows y puedes descargarlos de sus páginas oficiales, no entrañando su instalación ninguna dificultad.


17.1.2 Creación de un proyecto en Dev-C++.

Empecemos descargándonos e instalando de http://www.bloodshed.net/dev/devcpp.html, Dev-C++ 4 y su actualización. La versión 5.0 está en beta (9.2), pero casi lo dejamos a tu elección. No es lo mismo programar para el ámbito empresarial, donde deberías apostar sobre seguro y no trabajar con versiones betas casi nunca, que para un pequeño trabajo de facultad donde te puedes permitir ciertas licencias.

  1. Una vez instalado, arráncalo desde Inicio, Todos los programas, Bloodshed Dev-C++, Dev-C++.

  1. Ahora creemos un proyecto, en la barra de menú haz clic en Archivo, Nuevo, Proyecto o en el botón Nuevo… de la barra de herramientas, Proyecto. Como puedes observar en la figura podemos elegir entre varios tipos de proyectos:

    • Aplicación para Windows (Windows Application).

    • De consola (Console Application).

    • Librería estática (Static Library) o dinámica (DLL).

    • Proyecto vacío (Empty Project).

Como es nuestro primer proyecto vamos a crear un proyecto de consola, Console Application. Vamos a llamarle Factorial porque va a calcular el factorial de un número, estará programado en C++ y habilitamos el soporte al español. Una vez finalizado, haz clic en Aceptar.

  1. El siguiente paso será preguntarte el directorio donde desees crear el proyecto.


17.1.3 Compilación y ejecución de un ejemplo: mi pirámide numérica favorita.

El esqueleto inicial de la aplicación es simplemente la función main, vamos a agregarle el código necesario, observa la figura inferior.

Luego salvamos, desde el menú Archivo, Guardar o desde el icono que representa un disquette en la barra de herramientas. La primera vez que salves te preguntará donde deseas que guardes el fichero main.cpp. Recuerda que un proyecto puede tener distintos archivos fuentes, pero el punto de entrada y salida al programa está en la función main alojada en este archivo.



Deberías tener un directorio asignado para tus proyectos de programación, por ejemplo MisProyectos y dentro de este, una carpeta individual por proyecto. En esta carpeta debes guardar el archivo .dev de definición del proyecto y los distintos archivos fuente del programa, entre ellos el main.cpp

Ahora, si todavía no los has hecho, teclea el código necesario, vuelve a salvar y compila desde Ejecutar, Compilar. También puedes utilizar la combinación Ctrl y F9 o el botón

Este es el esqueleto de aplicación que te crea el asistente.

Observa la función main, con una llamada a system para que realice una pausa que te permita ver los resultados de la ejecución del programa.

El código que hemos escrito es muy simple.

Tenemos una función factorial que devuelve el factorial del número que se le pasa como parámetro y dentro de main la típica petición de datos al usuario, así como la salida con el factorial del valor introducido por teclado.

Observa el cuadro de diálogo en la derecha, nos informa que la compilación se ha realizado y no hay ni errores (Errors) ni avisos (Warnings).

Sólo nos queda lanzar la aplicación: Ejecutar, Ejecutar. También puedes utilizar las teclas rápidas Ctrl, F10 o hacer clic en el botón

Para ganar eficiencia, puedes indicarle a la herramienta que tanto compile como ejecute, se encuentra en: Ejecutar, Compilar y Ejecutar, con la tecla F9 o haciendo clic en el botón

Si quieres hacer algo más, prueba con esta pirámide, introduce esta función:


unsigned piramide(unsigned n){

unsigned fila, columna;

for (fila=1; fila<=n; fila++)

{

for (columna=1; columna<=n-fila; columna++)

cout << " ";

for (columna=1; columna<=fila; columna++)

cout << columna;

for (columna=fila-1; columna>=1; columna--)

cout << columna;

cout << endl;

}

for (fila=n-1; fila>=1; fila--)

{

for (columna=1; columna<=n-fila; columna++)

cout << " ";

for (columna=1; columna<=fila; columna++)

cout << columna;

for (columna=fila-1; columna>=1; columna--)

cout << columna;

cout << endl;

}

}


17.1.4 Creación de un proyecto visual con wxDev-C++.

Para instalar wxDev-C++, primero descárgate el instalador desde: http://wxdsgn.sourceforge.net/index.php.


Si quieres utilizar el compilador MS VC++ 2005, precisarás previamente habértelo descargado de la página de Microsoft http://msdn2.microsoft.com/en-us/express/default.aspx, así como su SDK.


SDK (Software Development Kit) es el Kit de Desarrollo Software.

Como ves en la figura, hemos optado por la primera opción, Mingw gcc como compilador.


Cuando arranque por primera vez, tendrás un asistente de configuración que te pregunta por el idioma y por la apariencia del entorno.

Elige Español(Castellano) y en tema del entorno, ya sabes, “para gustos, colores”.

Haz clic en Next y sigue el asistente dejando las opciones por defecto.

Vamos a crear nuestro primer proyecto.

1. Sigue la secuencia Archivo, Nuevo, Proyecto.

2. Elegimos un tipo de proyecto, por ejemplo wxWidgetFrame. Le damos un nombre y hacemos clic en Aceptar.

3. Ahora nos pedirá donde queremos guardar el archivo de proyecto (.dev), recuerda las indicaciones del apartado anterior.

Al elegir wxWidget tenemos un esqueleto de aplicación gráfica, es decir tendremos una ventana con los tres botones clásicos en la esquina superior derecha; ahora estará vacía, gris y triste, pero eso tiene fácil solución.

4. El siguiente paso, es definir el nombre de la clase principal del proyecto, donde la vamos a guardar, el título de la ventana, autor (pon aquí tu nombre), el estilo de la ventana, etc.

Para este ejemplo, dejaremos las opciones por defecto que son adecuadas para la mayoría de las necesidades. Haz clic en Create.

Observa el resultado final así como el entorno. Nos encontramos a la izquierda con un administrador de proyectos (Project Inspector) y de propiedades (Property Inspector), a la derecha observa la caja de controles que podemos incluir en nuestro formulario. En la parte inferior obtendremos los resultados de la compilación.

5. Finalmente, compila y ejecuta el programa, basta con pulsar F9 o hacer clic en el menú Ejecutar, Compilar y Ejecutar.

Como puedes comprobar el funcionamiento es idéntico a su herramienta padre. Bueno, no obtenemos mucho, pero tampoco hemos hecho demasiado, ¿no crees?

De todas formas tienes más de lo que te imaginas, puedes moverla, minimizarla y cerrarla, sin haber escrito una línea de código.

6. Vamos a añadir funcionalidad a nuestra aplicación. Empieza con un menú, en la parte derecha recuerda que teníamos la caja de controles, por defecto leemos All, es decir todos los controles.

Selecciona Menu, MenuBar y luego haz clic en el formulario. Haz lo propio con Static Text (texto) y CalendarCtrl (calendario).

Fíjate en la figura inferior, en la esquina superior izquierda de la ventana, un pequeño recuadro representando el control del menú en nuestro formulario.

7. Ahora para cada componente tendremos que adaptarlo a nuestras necesidades. Recuerda que teníamos el Property Inspector en la parte inferior izquierda de la pantalla.

Una vez seleccionado un control haciendo clic sobre él, con la ventana de propiedades configura las propiedades y los eventos de dicho control.

En la figura, hemos seleccionado el control Static Text, cambia el Label, es decir, el texto que aparece, la fuente Font, etc.

8. Selecciona el control del menú y en el inspector de propiedades (parte izquierda de la imagen) haz clic en los puntos suspensivos de la entrada Menu Ítems. Ahora, te aparece el cuadro de dialogo de la derecha, donde vamos a definir nuestro menú. Haz clic en Add Item, observa que tenemos dos propiedades:

  • Type: Tipo de entrada de menú, normalmente Menu Item, pero podría ser también un separador.

  • Caption: La leyenda o el texto que aparecerá. Observa que en Ayuda, entre la “A” y la “y” hemos tecleado el símbolo &”, esto define las teclas rápidas para acceder a dicha opción del menú, en este caso Alt + y.

Cuando hayas acabado de definir la entrada pulsa Apply.

Ahora creamos las subentradas Salir y Acerca con el botón Create Submenu.



Muy importante es darse cuenta que tenemos que asociar en la entrada Salir un evento, concretamente hacer clic sobre dicha entrada, con una acción, en este caso que se cierre la aplicación.

También puedes poner un mensaje en Hint, “Salir de la aplicación”. Esto ayudará a que tu software sea más amigable.

Haz clic en el botón Create a la derecha de salirClic, nos va a permitir definir una función que trate dicho evento, la hemos llamado salirClick.

De la misma forma crea también una subentrada para Ayuda, llamada Acerca y define una función, llamémosla acercaClic para el evento OnMenu.

9. Ahora navega con el inspector de proyectos, al archivo miPrimerWidgetFrm.cpp donde está la función recién creada pero vacía.

Introduce la línea Destroy() para que cierre la aplicación.

void miPrimerWidgetFrm::salirClick(wxCommandEvent& event)

{

// insert your code here

Destroy();

}

10. Ahora vamos a crear el típico “Acerca de” la aplicación.

Primero precisamos crear una nueva ventana, para ello selecciona Archivo, Nuevo…wxDialog, te preguntará si quieres añadir un nuevo recurso al proyecto, responde Si.

Dicho diálogo tiene una clase que implementa su funcionalidad y va a ser ClaseAcerca, también debes indicar el título y el o los autores. Cuando acabes haz clic en Create.


11. Debes encontrar tres nuevos ficheros: ClaseAcerca.h, ClaseAcerca.cpp y ClaseAcerca.wxform. Con los dos primeros defines la funcionalidad de esta ventana, con el tercero defines la interfaz.

Por ejemplo, aquí además de tener un control de texto, tenemos un botón (Button), y una imagen (StaticBitmap). Las propiedades básicas a definir de Button son Label, etiqueta el botón “Aceptar”, IDName, idAceptar y del control StaticBitmap Picture, para seleccionar la imagen apropiada.

12. Finalmente navega a miPrimerWidgetFrm.cpp, es decir el código que implementa la funcionalidad de la aplicación, busca la función acercaClic y añade el código que invoca y por tanto muestra nuestro dialogo Acerca.

Observa que debes incluir al principio de dicho fichero el correspondiente include. Pulsa F9 y observa el resultado.

#include "ClaseAcerca.h"

[…]

void miPrimerWidgetFrm::acercaClic(wxCommandEvent& event){

wxString msg;

ClaseAcerca miAcerca(this);

if (miAcerca.ShowModal()==wxID_OK){

msg.Printf("Este es mi primer programa con wxDev-C++.\n");

wxMessageBox(msg, _T("Bienvenido a wxDev"),wxOK | wxICON_INFORMATION, this);

}

}

17.2. Tus primeros pasos: KTurtle, aUCBLogo y FMSLogo.


17.2.1. KTurtle.


17.2.1.1 Definición. Características.

KTurtle es un entorno de programación diseñado específicamente para enseñar a programar, por lo tanto tiene como objetivos conseguir que la programación sea lo más sencilla y amena posible. Está basada en Logo y las direcciones a tener en cuenta son la página oficial http://edu.kde.org/kturtle/ y su manual http://docs.kde.org/development/en/kdeedu/kturtle/.

Forma parte del proyecto educativo de KDE, por lo tanto es una aplicación para Linux.


17.2.1.2 Instalación.

Puedes instalarlo de forma independiente con el paquete kturtle o dentro del metapaquete kde4edu que engloba todas las aplicaciones que forman parte del citado proyecto educativo de KDE y que en el momento de la redacción de este documento estaba todavía en fase beta.


17.2.1.3 Creación de una flor.

  1. Ejecútalo desde Aplicaciones, Educación, KTurtle o escribe en la consola kturtle.

  1. Busquemos la flor, está dentro de una batería de ejemplos que incluye el programa. Navega por Archivo, Abrir ejemplos…, selecciona flower.logo. Observa que los ficheros de KTurtle tienen extensión .logo.

  1. Ejecútalo desde Archivo, Ejecutar comandos.

  2. Observa dos ejemplos, uno a la izquierda curly.logo y otro a la derecha, nuestra flor. A la izquierda está el código, a la derecha el resultado.

Fíjate qué fácil es dibujar un cuadrado, lo encontrarás en el ejemplo square.log:

repeat 4 [ “repite 4 veces, una por cada lado”

forward 100, “camina 100 pasos, que será la longitud de cada lado”

turnleft 90 “gira a la izquierda 90 grados”

]


17.2.2 Otras opciones:


17.2.2.1 aUCBLogo.

Una alternativa que corre también en Windows es aUCBLogo, es un intérprete de Logo. Para aprender sobre logo, puedes visitar el site paraíso de logo en http://neoparaiso.com/logo/.

Para instalarlo busca la última versión estable en http://www.physik.uni-augsburg.de/~micheler/, descomprímela y ejecuta aucblogo.exe. En Ubuntu puedes instalar el paquete .deb que se encuentra en la misma página con GDebi. Lo encontrarás en Aplicaciones, Programación, aUCBLogo o en la consola escribiendo aucblogo.

El programa consta de tres pantallas:

Para lanzar un ejemplo basta con ir a la ventana Editor, navegar por File, Open o con las teclas Ctrl + O y elegir un archivo .lg de los que trae como ilustración, elige por ejemplo 3dsurfaces.lg. A continuación se ejecuta, también desde la ventana Editor, en la entrada Run, Run o F9.


17.2.2.2 FMSLogo.

FMSLogo es otro interprete de Logo para Windows que tiene como bandera poseer una interfaz gráfica muy amigable que “inspira” el aprendizaje. A pesar de su potencia y flexibilidad, no consume muchos recursos, así puede ejecutarse, según sus autores, en máquinas que tengan más de diez años.

Su página principal es http://www.fmslogo.org/ y para descargártelo precisas seguir el vínculo desde este portal a sourceforge, instálate tanto el paquete FMSLogo (FMSLogo 6.17.0) como los extras (FMSLogo Extras 1.8).

Se ejecuta desde Inicio, Todos los programas, FMSLogo, FMSLogo. Observa que hemos vuelto a dibujar un cuadrado con una línea tan simple como: REPEAT 4 [FD 100 RT 90]. Dicho ejemplo está tomado del tutorial que está bastante completo y se encuentra accesible desde Ayuda, Tutorial.


17.3 Programando C/C++ con la vieja escuela: gcc


17.3.1 Definición. Características. Direcciones interesantes.

Gcc es el compilador GNU estándar y libre para C en sistemas UNIX/Linux. Páginas de visita obligada son la página oficial http://gcc.gnu.org/, así como un manual bastante reciente que puedes encontrar en http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/.


17.3.2 MinGW, Una GNU minimalista para Windows.

MinGW permite producir programas Windows que no dependen de DLLs de terceras partes, es un conjunto de herramientas GNU diseñadas para Windows.

1. Su página oficial es http://www.mingw.org/, para instalarlo ve a la sección Download, haz clic en el enlace Sourceforge File Release, que te llevará a sourceforge. Te aconsejamos que descargues la versión MinGW-5.1.3 o posterior que incorpora un instalador automático (Automated MinGW Installer).

2. Una vez descargado podrás elegir que versión instalar, selecciona Current, es decir, la versión actual.

3. Decide el tipo de instalación que quieres realizar: Mínima (Minimal), Completa (Full) o Personalizada (Custom). Se trata de decidir cuántos compiladores deseas, pues cuentas con compiladores para Java, g++, Ada, etc. Elige Full si tienes espacio suficiente en disco para poder disfrutar de todas estas herramientas.

Veamos ahora como ejecutar un programa sin utilizar ningún entorno IDE de desarrollo.

1. Cambia la variable PATH de tu Windows. Haz clic con el botón derecho en Mi PC y elige Propiedades, ve a la pestaña Opciones Avanzadas y dentro de esta haz clic en el botón Variables de entorno.

En las variables del sistema, selecciona Path y haz clic en el botón Modificar, agrega al final de la línea “;c:\mingw\bin.

2. Ahora entra en el intérprete de Windows, desde Ejecutar, teclea cmd.

3. Escribe tu primer programa con edit HolaLibre.cpp:

#include <iostream>

int main(int argc, char **argv)

{

std::cout << "Hola Libre" << std::endl;

return (0);

}

4. Compílalo: g++ -o holaLibre.exe holaLibre.cpp

5. Ejecútalo: holaLibre.exe


17.3.3 Compilación y ejecución de un programa que calcula el factorial de un número en Linux.

Lo primero que debes hacer es instalar el paquete build-essential. Luego editas el fichero factorial.c y escribes el código que te mostramos en la ilustración. Ahora, compilas con la orden: gcc -o factorial.o (el nombre del ejecutable resultante) factorial.c (archivo fuente), finalmente ejecutas con: “./factorial.o


Fíjate, en sistemas Windows para ejecutar el programa que hemos creado, basta con escribir la orden:

Nombredeprograma.exe

En cambio en Linux, primero tendremos que dar permisos de ejecución sobre el archivo creado y posteriormente ejecutar la orden:

./Nombredelprograma


17.3.4 Compilando varios archivos fuentes.

Cuando nuestro código crece, no es una buena idea tener todas las funciones y el cuerpo del programa en un único fichero principal o main. Así debe considerarse por ejemplo, agrupar las funciones en ficheros separados del programa main principal.

Mira a modo de ilustración el siguiente ejemplo. Separamos la función factorial en un fichero fuente llamado factorial.c, con su fichero de cabecera, factorial.h. Ambos ficheros están editados en la parte superior de la ilustración, a la izquierda factorial.h donde encontramos el prototipo de la función que más tarde implementaremos en factorial.c a su derecha.

El archivo main.c es el que tiene la función principal, main de entrada y salida del programa, obsérvalo en la ventana central de la figura. También debes fijarte en que precisamos añadir un “include” al fichero factorial.h para poder utilizar la función factorial. Observa que este modo de programación es más estructurado y organizado, lo cual nos será de gran utilidad, sobre todo cuando el código no se reduce a una función huérfana (factorial) y una llamada a ésta.

Por último en la ventana más inferior, compilamos ambos fuentes con gcc -o main.o factorial.c main.c y ejecutamos el resultado con ./main.o.


17.3.5 Creando librerías.

Profundizando en la programación estructurada, las librerías proporcionan un pasito más, aislando cierta funcionalidad en librerías, conseguimos mayor reusabilidad y mantenibilidad y por tanto lo que todos queremos, mayor productividad, además de un código más seguro y simple. Esta es la razón que hace que las librerías dinámicas DLL (Windows), so (UNIX) estén tan de moda.

Hay dos tipos de librerías, las estáticas y las dinámicas. Las estáticas se incluyen en nuestro programa al compilarlo, hacen al ejecutable “más grande” pero este será más rápido al no tener que buscar las librerías cuando las necesita. Sin embargo, las dinámicas, se enlazan dinámicamente en tiempo de ejecución y no se encuentran contenidas en el ejecutable.

Para crear una librería estática (una explicación mucho más detallada y en profundidad puedes estudiarla en http://www.network-theory.co.uk/docs/gccintro/index.html y http://www.chuidiang.com/clinux/herramientas/librerias.php), seguimos los siguientes pasos:

  1. Compilamos los ficheros fuentes por separado, imaginemos por ejemplo que tenemos dos funciones (es_primo, factorial) en sendos ficheros fuentes (primo.c, primo.h, factorial.c, factorial.h). Esto se hace con gcc -c -o fuente.o fuente.c

  2. Creamos la librería, usamos el comando ar con los parámetros cr, estos parámetros crean la librería si no existe y si ya existe la reemplazan. Posteriormente indicamos el nombre de la librería, miLibreria.a y los ficheros objetos que forman la librería (factorial.o, primo.o).

ar cr miLibreria.a factorial.o primo.o

  1. Compilamos nuestra función principal, indicando el nombre de la librería. Observa que suponemos, en aras de una mayor simplicidad, que todos los archivos están en el mismo directorio.

gcc –Wall main.c miLibreria.a –o main.o

  1. Ejecutamos el resultado final con ./main.o.

Observarás que la última orden gcc tiene la opción Wall, esta opción sirve para indicar al compilador que nos avise cuando haya errores o avisos. Un error impide la ejecución del programa, un aviso nos indica que el compilador ha detectado algo extraño y que puede llevar a una ejecución no deseada de nuestro programa.

Vamos ahora a explicar cómo crear una librería dinámica:

  1. Definimos la variable de entorno LD_LIBRARY_PATH que define donde vamos a guardar nuestras librerías dinámicas.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/joe

  1. Compilamos los ficheros fuentes con la opción fPIC que indican que van a ser parte de una librería compartida.

gcc –c –fPIC factorial.c –o factorial.o

gcc –c –fPIC primo.c –o primo.o

  1. Creamos la librería dinámica con la instrucción: gcc -shared -fPIC -o nombreLibreria.so fuente1.o fuente2.o

  1. Compilamos y ejecutamos la función principal.

gcc –Wall main.c –o main.o miLibreria.so

./main.o


17.4 Anjuta.


17.4.1 Definición. Características.

Como puedes comprobar en el apartado anterior, programar por consola sin un entorno de desarrollo visual es bastante tedioso y complicado. Para facilitarnos el trabajo a la hora de desarrollar programas, podemos instalarnos un entorno integrado de desarrollo, IDE. En Linux disponemos, entre otros, de Anjuta y Kdevelop, ambos desarrollados para Gnome y KDE respectivamente.

La página oficial de Anjuta es http://www.anjuta.org/ y consta entre otras características de un gestor de proyectos, distintos asistentes para el desarrollo de aplicaciones, un debugger interactivo y un potente editor de código.


17.4.2 Instalación.

La instalación de la aplicación la podemos realizar desde Synaptic, instala los paquetes anjuta, glade, autogen, libtool, intltool, build-essential, automake1.9, autoconf, devhelp y libglib2.0-dev. Una vez instalada se nos ubica dentro de la categoría de Desarrollo.

Ten en cuenta que las librerías de desarrollo (las –dev) deben estar de acorde a las librerías GLib que tengas ya instaladas; observa en la figura, tenemos instaladas las libglib2.0 (debe aparecerte con el cuadrado en verde).


17.4.3 Creación de un proyecto.

Al iniciar la aplicación, desde Aplicaciones, Programación, EID Anjuta, vemos como presenta un entorno bastante más amigable que un terminal y desde el cual vamos a poder desarrollar todas las operaciones de compilación, depuración y ejecución.

Para realizar tu primer proyecto debes seguir los siguientes pasos.

1. Crear un proyecto nuevo: Archivo, Nuevo, Project. Haz clic en Adelante.

2. Tendrás que indicar el tipo de proyecto. Selecciona en la categoría C, Generic.

Observa que puedes desarrollar aplicaciones de distinto tipo y con diferentes lenguajes de programación (C, C++, Java y Python).

3. En la siguiente pantalla introduces la información básica del proyecto: Nombre del proyecto (HolaMundoLibre), Autor (joe), Dirección del correo (joe@pasateLinux.com), Versión (0.1).

4. En la última pantalla defines las distintas opciones del proyecto: licencia (por defecto GPL), destino (/home/joe/Projects/miPrimerPrograma), etc. Deja en principio las opciones por defecto. Finaliza el proceso haciendo clic en Aplicar.


17.4.4. Compilación y ejecución del “Hola Mundo Libre”.

Observa cómo nos ha construido un esqueleto de aplicación e incluso el código en el directorio src (source, código fuente), main.c (el archivo donde se encuentra la función main de la aplicación) para poder escribir “Hola Mundo Libre”.

Ahora le indicamos que automáticamente genere los archivos necesarios, haz clic en: Construir, Ejecutar Autogeneración. Nos debe indicar en la ventana de Mensajes el siguiente resultado:

Now type ‘make’ to compile.

Completado … correctamente.

Tiempo total empleado: 20 segundos.

Compilamos (make main.o): Construir, Compilar o la tecla F9.

Construimos el proyecto (make): Construir, Construir Proyecto.

Ejecutamos el programa: Construir, Ejecutar el programa o la tecla F3. Nos pregunta si vamos a introducir argumentos (no es el caso), simplemente haz clic en Aceptar.

Observa el resultado obtenido en la figura.


17.5 Kdevelop.


17.5.1 Definición. Características. Direcciones interesantes.

KDevelop es otro IDE, es decir, un entorno gráfico para el desarrollo rápido de aplicaciones (RAD): editor de código con características específicas para la programación como identado automático y coloreado sintáctico, asistentes para la realización de distintos tipos de proyectos, gestión de proyectos, interfaz gráfico para el compilador gcc, soporte para distintos lenguajes, etc.

Fue fundado en 1998 con la aspiración de permitir construir aplicaciones para el entorno KDE de la forma más sencilla y amigable posible. Su dirección oficial es http://www.kdevelop.org/ y está disponible bajo licencia GPL. También puede resultarte útil la dirección http://www.beginning-kdevelop-programming.co.uk/ donde se trata de introducir a los principiantes en la programación con KDevelop.


17.5.2 Instalación.

La instalación no puede ser más sencilla, basta con instalar desde nuestro gestor de paquetes preferido, Synaptic o Adept, el paquete kdevelop.


17.5.3 Creación de un proyecto visual: un Hola Mundo molón.

Como es de esperar una vez concluida la instalación se nos ubicará en la categoría de Desarrollo, si utilizamos el gestor de ventanas KDE estará en K, Desarrollo, KDevelop, KDevelp: C/C++ IDE para C/C++.

Para desarrollar un proyecto, realiza los siguientes pasos:

1. Crea un nuevo proyecto: Project, New Project. Defines el nombre, tipo y ubicación del proyecto. En el ejemplo seleccionaremos un proyecto en C++, concretamente Simple Hello World program.

2. En la siguiente pantalla rellenamos la información general: Autor, E-mail,Versión (por defecto 0.1), E-mail y Licencia (por defecto, GPL).

3. Acepta en el resto de las pantallas las opciones por defecto. Observa que nos crea un esqueleto de aplicación.

4. Sobre dicho esqueleto prueba a escribir las líneas de código que aparecen en la figura inferior.

5. Construye el proyecto: Build, Build Project o la tecla F8. Al ejecutar esta opción KDevelop realizará automáticamente todos los pasos intermedios (compilación, make, etc.). Debes obtener en la ventana de mensajes, algo como: **Success** o éxito.

6. Ejecuta dicho proyecto: Build, Execute Program o Mayúsculas y la tecla F9.

Si quieres tener la posibilidad de escribir un Hola Mundo pero utilizando ventanas asegúrate de tener instalados los paquetes: kdebase-dev, kdelibs4-dev, qt3-apps-dev, qt3-designer, qt3-dev-tools.

Para desarrollar un proyecto visual, realiza los siguientes pasos:

1. Crea un nuevo proyecto: Project, New Project. Defines el nombre, tipo y ubicación del proyecto. En el ejemplo seleccionaremos un proyecto en C++, pero esta vez Simple Designer based KDE Application.

2. Luego finaliza el asistente tal como se explicó anteriormente.

3. Construye el proyecto: Build, Build Project o la tecla F8 y ejecútalo: Build, Execute Program o Mayúsculas y la tecla F9.

4. El resultado no es muy aparente, si haces clic sobre el botón Clic Me! te aparece el mensaje Hello World!

5. Ahora empecemos cambiando el interfaz de usuario, en tu proyecto navega al directorio src donde están los códigos fuentes de los ficheros del proyecto. Nos interesa el fichero unaholamolon2widgetbase.ui, haz clic sobre él y podrás personalizar la interfaz del widget base.

En particular observa que tienes dos elementos: un botón (button, cuya clase es QPushButton) y una etiqueta (label, cuya clase es QLabel). Ahora puedes personalizarlos, por ejemplo puedes cambiar la propiedad pixmap de la etiqueta (label) e incluir una imagen y text del botón, que ahora tiene como cadena de caracteres “Aprende Libre”.

6. Navega a unaholamolon2widget.cpp donde está implementada la funcionalidad de la interfaz y cambia el mensaje que aparece cuando haces clic sobre el botón:


void unaHolaMolon2Widget::button_clicked()

{

/*Este es el método de la clase unaHolaMolon2Widget que es invocado cuando se hace clic sobre el botón*/

if (label->text().isEmpty() ) // si no hay ningún texto en la etiqueta …

{

label->setText(“Se Libre”); /* … escribe Se Libre, es decir cuando el usuario haga clic sobre el botón, como la propiedad de texto está vacía, se rellenará con el texto indicado*/

}

else

{

label->clear(); // vacía la etiqueta, luego si vuelves a hacer clic, el mensaje desaparece

}

}